﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Archivos.Pdf;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;

namespace EGuayas.Web.Usuario
{
    public partial class pgAdminUsuarios : pgBase
    {
        #region Set-Session
        public  UsuarioCriteria CurrentCriteria
        {
            get
            {
                UsuarioCriteria session =
                  (UsuarioCriteria)Session[SessionPage.PageUserAdm + "_pgAdminUsuariosCriteria__"];
                if (session == null)
                {
                    session = UsuarioCriteria.NewUsuarioCriteria();
                    Session[SessionPage.PageUserAdm + "_pgAdminUsuariosCriteria__"] = session;
                }
                return session;
            }
            set
            {
                Session[SessionPage.PageUserAdm + "_pgAdminUsuariosCriteria__"] = value;
            }
        }
        #endregion Set-Session
       
     
      
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {
               
                this.hddIdPageSession.SetValue(SessionPage.PageUserAdm);
                this.hddRolCodigoPromotor.SetValue(Valores.Codigo_Rol_Promotor);
                this.hddRolCodigoTecnico.SetValue(Valores.Codigo_Rol_TecnicoAuditoria);
                this.hddRolCodigoTecnicoL.SetValue(Valores.Codigo_Rol_TecnicoLicencimiento);
                this.hddRolCodigoAdminis.SetValue(Valores.Codigo_Rol_Administrador);
                this.hddRolCodigoJefe.SetValue(Valores.Codigo_Rol_JefeDepartamentalAuditoria);
                this.hddRolCodigoJefeL.SetValue(Valores.Codigo_Rol_JefeDepartamentalLicencimiento);
                this.hddRolCodigoConsultor.SetValue(Valores.Codigo_Rol_Consultor);
                this.hddRolCodigoDirector.SetValue(Valores.Codigo_Rol_Director);
                this.hddRolCodigoSubDirector.SetValue(Valores.Codigo_Rol_SubDirector);
                SetSessionPage pgSession = new SetSessionPage(SessionPage.PageUserAdm, Valores.PageEvento_Lectura);
                this.stoRol.DataSource = RolLista.GetRolLista();
                this.stoRol.DataBind();
                
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
          
       [DirectMethod]
       public string  UpdateEstadoUser(string id,string estado)
       {
           try{
           string valRetun = (estado == Valores.Codigo_Estado_Activo) ? Valores.Codigo_Estado_NoActivo : Valores.Codigo_Estado_Activo;
           Usuarios user = Usuarios.GetEditableRoot(id);
           user.Estado = valRetun;
           user.Save();
           DataBindGrid();
           return (valRetun);
           }
           catch (Exception ex)
           {
               RegistrarLog(ex);
           }
           return "";
       }

       [DirectMethod]
       public  Boolean DataBindGrid()
       {
          try{

           stoListaUsuarios.DataSource = UsuarioLista.GetUsuarioLista(CurrentCriteria);
           stoListaUsuarios.DataBind();
          }
          catch (Exception ex)
          {
              RegistrarLog(ex);
          }
           return (true);
       }
       protected void btnBuscarUsuarios_Click(object sender, DirectEventArgs e)
       {
           try
           {
               UsuarioCriteria criterioBusqueda = UsuarioCriteria.NewUsuarioCriteria();
               criterioBusqueda.Nombre = e.ExtraParams["Nombre"];
               criterioBusqueda.Apellido = e.ExtraParams["Apellido"];
               criterioBusqueda.Rol = e.ExtraParams["Rol"];
           
               stoListaUsuarios.DataSource = UsuarioLista.GetUsuarioLista(criterioBusqueda);
               stoListaUsuarios.DataBind();
               CurrentCriteria = criterioBusqueda;
           }
           catch (Exception ex)
           {
               RegistrarLog(ex);
           }
          
       }
      
       [DirectMethod]
       public Boolean SetSession(string _session_page)
       {
           try
           {
           SetSessionPage setSess = new SetSessionPage(SessionPage.PageUserAdm, _session_page);
           }
           catch (Exception ex)
           {
               RegistrarLog(ex);
           }
           return (true);
       }
        

    }
}